package com.dhcc.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.entity.SysDept;
import com.dhcc.entity.SysDeptPosition;
import com.dhcc.entity.SysPosition;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 机构（部门）-岗位关联 接口层
 * @ProjectName Dhcc-Cloud
 * @PackageName com.dhcc.service
 * @Title SysDeptPositionService
 * @Date 2024/12/5 下午3:40
 * @Author LiuGuoting
 */
public interface SysDeptPositionService extends IService<SysDeptPosition> {

    /**
     * 获取机构（部门）-岗位关联列表
     * @param queryWrapper
     * @return
     */
    List<SysDeptPosition> getSysDeptPositionList(Wrapper<SysDeptPosition> queryWrapper);

    /**
     * 获取部门-岗位树结构
     *
     * @param departments 部门列表
     * @param positions 岗位列表
     * @param deptPositions 部门-岗位关系列表
     * @return 部门-岗位树结构，节点包含子部门和岗位信息
     */
    List<Map<String, Object>> getDeptPositionTree(Set<SysDept> departments, Set<SysPosition> positions, Set<SysDeptPosition> deptPositions);
}
